
#pragma once

#include "../MT/Math3D.h"

namespace ors
{
	struct Body;

	/**
	Base class for an object that can act as a drop target for other objects. 
	*/
	class DropTarget {
	public:
		virtual ~DropTarget() {}

		virtual void calcTargetPositionForDrop(double& x, double& y, Body *body) = 0;
	};

	/**
	Position marker in 3D space, a valid drop target but not a body.
	(currently unused)
	*/
	class Marker3D : DropTarget {
	public:
		~Marker3D() {}

		Transformation transform; 

		void calcTargetPositionForDrop(double& x, double& y, Body *body) {}
	};
};